import * as PIXI from "pixi.js";
import { SimplePixilOptions, PixilItemOptions } from "./types";

export class SimplePixil {
  private container: PIXI.Container;

  private options: SimplePixilOptions;

  constructor(app: PIXI.Application, options: SimplePixilOptions) {
    this.options = options;
    this.container = new PIXI.Container();
    this.container.x = options.x;
    this.container.y = options.y;
    this.fill();
    app.stage.addChild(this.container);
    this.container.eventMode = 'static'
    this.container.on("pointerdown", () => {
        alert('?')
    });
  }

  private fill() {
    const grids = this.options.grids;
    const data = this.options.data;
    const piece = new PIXI.Graphics();

    for (let row = 0; row < grids; row++) {
      for (let col = 0; col < grids; col++) {
        // 填充
        const size = this.options.size / this.options.data.length;

        const { color } = data[col][row];
        
        piece.beginFill(color).drawRect(size * row, size * col, size, size);
        
      }
    }
    this.container.addChild(piece);
  }

  static Maid: PixilItemOptions[][] = [
    [
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
    ],
    [
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
    ],
    [
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
    ],
    [
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
    ],
    [
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
    ],
    [
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
    ],
    [
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
    ],
    [
      {
        color: "#3F4A84",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#3F4A84",
      },
    ],
    [
      {
        color: "#3F4A84",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#6C7FC1",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#3F4A84",
      },
    ],
    [
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#6C7FC1",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#FCFEFD",
      },
      {
        color: "#3F4A84",
      },
    ],
    [
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#6C7FC1",
      },
      {
        color: "#F7DBD8",
      },
      {
        color: "#6C7FC1",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
    ],
    [
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#6C7FC1",
      },
      {
        color: "#F7DBD8",
      },
      {
        color: "#F7DBD8",
      },
      {
        color: "#F7DBD8",
      },
      {
        color: "#6C7FC1",
      },
      {
        color: "#6C7FC1",
      },
      {
        color: "#6C7FC1",
      },
      {
        color: "#6C7FC1",
      },
      {
        color: "#6C7FC1",
      },
      {
        color: "#6C7FC1",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
    ],
    [
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#6C7FC1",
      },
      {
        color: "#F7DBD8",
      },
      {
        color: "#F7DBD8",
      },
      {
        color: "#F7DBD8",
      },
      {
        color: "#F7DBD8",
      },
      {
        color: "#F7DBD8",
      },
      {
        color: "#F7DBD8",
      },
      {
        color: "#F7DBD8",
      },
      {
        color: "#F7DBD8",
      },
      {
        color: "#6C7FC1",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
    ],
    [
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#6C7FC1",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#F7DBD8",
      },
      {
        color: "#F7DBD8",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#6C7FC1",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
    ],
    [
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#6C7FC1",
      },
      {
        color: "#ECEDF8",
      },
      {
        color: "#8298C7",
      },
      {
        color: "#8298C7",
      },
      {
        color: "#F7DBD8",
      },
      {
        color: "#F7DBD8",
      },
      {
        color: "#8298C7",
      },
      {
        color: "#8298C7",
      },
      {
        color: "#ECEDF8",
      },
      {
        color: "#6C7FC1",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
    ],
    [
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#6C7FC1",
      },
      {
        color: "#ECEDF8",
      },
      {
        color: "#8298C7",
      },
      {
        color: "#8298C7",
      },
      {
        color: "#F7DBD8",
      },
      {
        color: "#F7DBD8",
      },
      {
        color: "#8298C7",
      },
      {
        color: "#8298C7",
      },
      {
        color: "#ECEDF8",
      },
      {
        color: "#6C7FC1",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
    ],
    [
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#6C7FC1",
      },
      {
        color: "#F5ACC0",
      },
      {
        color: "#F5ACC0",
      },
      {
        color: "#F7DBD8",
      },
      {
        color: "#F7DBD8",
      },
      {
        color: "#F7DBD8",
      },
      {
        color: "#F7DBD8",
      },
      {
        color: "#F5ACC0",
      },
      {
        color: "#F5ACC0",
      },
      {
        color: "#6C7FC1",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
    ],
    [
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#6C7FC1",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "#6C7FC1",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
    ],
    [
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
    ],
    [
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#A2C4E7",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
    ],
    [
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "#3F4A84",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
      {
        color: "transparent",
      },
    ],
  ];
}
